Skip to main content
Version: 1.0.4

Transfer Money V2

The Unified Payment API serves as a single entry point for initiating real-time and fallback payments through multiple supported networks, including FedNow, TCH, and ACH. It abstracts the complexity of routing logic and network compatibility checks, allowing clients (such as mobile / middleware systems) to initiate payments with minimal integration effort.

Key Features:

  • Unified interface for multi-rail payments (FedNow, TCH, ACH)

  • Automatic routing based on beneficiary bank support

  • Built-in fallback mechanism if real-time networks are unavailable

Typical Use Case:

Client system (Mobile / Middleware) send a payment request to the XD Ledger via this API. The ledger then parses the request, determines the optimal payment rail, and processes the transaction end-to-end.


Method: POST

{{URL}}/jsonrpc

Example

Request Parameters
ParameterDescription
method

Mandatory
String
Method Name must be "TransactionService.Transfermoneyv2"
id

Optional
String
Unique identifier for the request.
Sample Value : "1"
paramsObject
payloadObject
Root Object containing the payment instruction details.
purpose

Optional
String
Describes the purpose of the transaction.
reference

Mandatory
String
Unique transaction reference.
transactionAmount

Mandatory
Object
Object containing amount and currency.
amount

Mandatory
String
Value of the transaction must be in Cents
Sample Value : "100"
currency

Mandatory
String
Currency code must be "USD".
creditorObject
Creditor (receiver) details.
userType

Optional
String
Type of user
Constant Value : "INDIVIDUAL / BUSINESS"
identificationType

Optional
String
Type of ID
Constant Values : " SSN / TIN"
identification

Optional
String
Unique identifier of the creditor.
firstName

Mandatory
String
First name of the creditor (INDIVIDUAL) or Name of the Company (BUSINESS).
Sample Value - INDIVIDUAL : "James"
Sample Value - BUSINESS : "XYZ LTD"
middleName

Optional
String
Middle name of the creditor.
Sample Value : "Edward"
lastName

Optional
String
Last name of the creditor.
Sample Value : "Harrington"
creditorAccountObject
Creditor’s bank account information.
identificationType

Optional
String
Account identification type
Sample Value : "ACCOUNT_NUMBER"
identificationType2

Optional
String
(Optional) Account type
Constant Values : " CHECKING / SAVINGS"
identification

Mandatory
String
Creditor’s account number.
institution

Mandatory
Object
Bank institution details for creditor.
name

Optional
String
Name of the bank
Sample Value : "JP MORGAN CHASE"
identificationType

Optional
String
Type of institution ID
Sample Value : "ABA"
identification

Mandatory
String
Institution identifier
Sample Value : ABA routing number
debtorPostalAddress

Optional
Object
Postal address of the debtor (sender).
addressType

Optional
String
Address type.
Sample Value : "HOUSE"
addressLine1

Optional
String
First line of the address.
addressLine2

Optional
String
Second line of the address.
city

Optional
String
City name
Sample Value : "Seattle"
state

Optional
String
State code
Sample Value : "WA"
zipCode

Optional
String
ZIP or postal code.
countryCode

Optional
String
Country code (ISO 3166, e.g., "840" for USA).
nationality

Optional
String
Nationality (ISO 3166 alpha-2, e.g., "US").
debtorContactObject
Contact details of the debtor.
primaryEmail

Optional
String
Email address of the debtor.
primaryPhone

Optional
String
Phone number of the debtor.
debtorAccountObject
Debtor’s bank account details.
identificationType

Optional
String
Identification type
Sample Value : "ACCOUNT_NUMBER"
identification

Mandatory
String
Account number of the debtor.
institution

Mandatory
Object
Institution details of the debtor’s bank.
name

Optional
String
Name of the bank
Sample Value : "ABC BANK"
identificationType

Optional
String
Institution ID type
Sample Value : "ABA"
identification

Mandatory
String
Institution ID
Sample Value : ABA number
apiObject
API credentials and metadata.
credential

Mandatory
String
Basic (space) [("<Username>:<apiKey>") as Base64 encoded value] to be provided
Sample Value: "Basic bmF2eWEubitlbXBAbmV0eGQuY29tOmY1OWIwY2NlOTU4ZTQ1YTc4MGVhZWIzYWVjOWVjZDAx"
signature

Mandatory
String
Sign the request payload (params.payload) using private key.
Sample Value: "MEQCIAbpxHpdOyBEVlmxPYv7m4Z1OvWJJYw7g7u3GE3T9nmvAiBjKHckSvb1M6O4t7FeWsn2z9Y3dMeYn3HyX/k28ek/Dw=="
apiKey

Optional
String
API key is provided at the time of device registration.
Sample Value : "f59b0cce958e45a780eaeb3aec9ecd01"
keyId

Mandatory
String
Key ID is provided at the time of device registration.
Sample Value : "348076"

curl --location '{{URL}}/jsonrpc' \
--header 'Content-Type: application/json' \
--data-raw '{"method":"TransactionService.Transfermoneyv2","id":"1","params":{"payload":{"purpose":"wages of June month included with loan repayment","reference":"REF-00001104","transactionAmount":{"amount":"100","currency":"USD"},"creditor":{"userType":"INDIVIDUAL","identificationType":"SSN","identification":"478541254","firstName":"Bishnu","middleName":"Parikh","lastName":"Shah"},"creditorAccount":{"identificationType":"ACCOUNT_NUMBER","identificationType2":"CHECKING","identification":"857444440002","institution":{"name":"JP MORGAN CHASE","identificationType":"ABA","identification":"011002550"}},"debtorPostalAddress":{"addressType":"HOUSE","addressLine1":"1st Ave","addressLine2":"238 Stuyvesant 14th St","city":"Seattle","state":"NY","zipCode":"45210","countryCode":"088","nationality":"USA"},"debtorContact":{"primaryEmail":"bishnuparsh@yahoo.com","primaryPhone":"+1-9876543456"},"debtorAccount":{"identificationType":"ACCOUNT_NUMBER","identification":"200515264448391","institution":{"name":"ABC BANK","identificationType":"ABA","identification":"124303298"}}},"api":{"credential":"Basic bmF2eWEubitlbXBAbmV0eGQuY29tOmY1OWIwY2NlOTU4ZTQ1YTc4MGVhZWIzYWVjOWVjZDAx","signature":"MEQCIAbpxHpdOyBEVlmxPYv7m4Z1OvWJJYw7g7u3GE3T9nmvAiBjKHckSvb1M6O4t7FeWsn2z9Y3dMeYn3HyX/k28ek/Dw==","apiKey":"f59b0cce958e45a780eaeb3aec9ecd01","keyId":"348076"}}}'



Request Body

{
"method": "TransactionService.Transfermoneyv2",
"id": "1",
"params": {
"payload": {
"purpose": "Loan Account number - 011011258698745",
"reference": "REF-00001104",
"transactionAmount": {
"amount": "100",
"currency": "USD"
},
"creditor": {
"userType": "INDIVIDUAL",
"identificationType": "SSN",
"identification": "478541254",
"firstName": "James",
"middleName": "Edward",
"lastName": "Harrington"
},
"creditorAccount": {
"identificationType": "ACCOUNT_NUMBER",
"identificationType2": "CHECKING",
"identification": "857444440002",
"institution": {
"name": "JP MORGAN CHASE",
"identificationType": "ABA",
"identification": "011002550"
}
},
"debtorPostalAddress": {
"addressType": "HOUSE",
"addressLine1": "1st Ave",
"addressLine2": "238 Stuyvesant 14th St",
"city": "Seattle",
"state": "NY",
"zipCode": "45210",
"countryCode": "088",
"nationality": "USA"
},
"debtorContact": {
"primaryEmail": "john@gmail.com",
"primaryPhone": "+1-9876543456"
},
"debtorAccount": {
"identificationType": "ACCOUNT_NUMBER",
"identification": "200515264448391",
"institution": {
"name": "ABC BANK",
"identificationType": "ABA"
"identification": "124303298",

}
}
},
"api": {
"credential": "Basic bmF2eWEubitlbXBAbmV0eGQuY29tOmY1OWIwY2NlOTU4ZTQ1YTc4MGVhZWIzYWVjOWVjZDAx",
"signature": "MEQCIAbpxHpdOyBEVlmxPYv7m4Z1OvWJJYw7g7u3GE3T9nmvAiBjKHckSvb1M6O4t7FeWsn2z9Y3dMeYn3HyX/k28ek/Dw==",
"apiKey": "f59b0cce958e45a780eaeb3aec9ecd01",
"keyId": "348076"
}
}
}

Response: 200

Response Parameters
ParameterDescription
idString
Unique identifier of the API response.
Sample Value: "1"
jsonrpcString
JSON-RPC version used.
Sample Value: "2.0"
resultObject
Root Object containing transaction result details.
apiObject
Metadata about the processed API.
typeString
Type of transaction acknowledgment Sample Value: "CCT_OUT_ACK"
referenceString
Reference ID for the transaction.
dateTimeString
Date and time when the transaction was acknowledged. Format: YYYY-MM-DD HH:mm:ss.
accountObject
Account details of the sender (debtor).
accountIdString
Debtor’s account number.
balanceCentsInteger
Available balance in cents after the transaction.
holdBalanceCentsInteger
Funds on hold in cents.
statusString
Current status of the account
Sample Value: "ACTIVE"
transactionNumberString
Internal transaction tracking number.
transactionStatusString
Final status of the transaction
Sample Value: "COMPLETED"
transactionAmountCentsInteger
Transaction amount in cents.
originalRequestBase64String
Base64-encoded original request payload.
processIdString
Unique ID for tracking the transaction process.
supportedChannelString
Channel through which the transaction was processed
Sample Value: "FEDNOW".
transactionTypeString
Type of transaction
Sample Value: "CCT_OUT"

Response Body


{
"id": "1",
"result": {
"api": {
"type": "CCT_OUT_ACK",
"reference": "REF-00001104",
"dateTime": "2025-05-27 16:06:30"
},
"account": {
"accountId": "200515264448391",
"balanceCents": 99850925,
"holdBalanceCents": 1000,
"status": "ACTIVE"
},
"transactionNumber": "QA00000001586007",
"transactionStatus": "COMPLETED",
"transactionAmountCents": 100,
"originalRequestBase64": "eyJjaGFubmVsIjoiRkVEX05PVyIsInRyYW5zYWN0aW9uVHlwZSI6IkNDVF9PVVQiLCJyZWZlcmVuY2UiOiJSRUYtMDAwMDExMDUiLCJ0cmFuc2FjdGlvbkFtb3VudCI6eyJhbW91bnQiOiIxMDAiLCJjdXJyZW5jeSI6IlVTRCJ9LCJkZWJ0b3JQb3N0YWxBZGRyZXNzIjp7ImFkZHJlc3NUeXBlIjoiSE9VU0UiLCJhZGRyZXNzTGluZTEiOiIxc3QgQXZlIiwiYWRkcmVzc0xpbmUyIjoiMjM4IFN0dXl2ZXNhbnQgMTR0aCBTdCIsImNpdHkiOiJTZWF0dGxlIiwic3RhdGUiOiJOWSIsInppcENvZGUiOiI0NTIxMCIsImNvdW50cnlDb2RlIjoiMDg4In0sImRlYnRvckNvbnRhY3QiOnsicHJpbWFyeUVtYWlsIjoiYmlzaG51cGFyc2hAeWFob28uY29tIiwicHJpbWFyeVBob25lIjoiKzEtOTg3NjU0MzQ1NiJ9LCJkZWJ0b3JBY2NvdW50Ijp7ImlkZW50aWZpY2F0aW9uIjoiMjAwNTE1MjY0NDQ4MzkxIiwiaWRlbnRpZmljYXRpb25UeXBlIjoiQUNDT1VOVF9OVU1CRVIiLCJpbnN0aXR1dGlvbiI6eyJuYW1lIjoiRmluV2lzZSBCQU5LIiwiaWRlbnRpZmljYXRpb24iOiIxMjQzMDMyOTgiLCJpZGVudGlmaWNhdGlvblR5cGUiOiJBQkEifX0sImNyZWRpdG9yIjp7InVzZXJUeXBlIjoiSU5ESVZJRFVBTCIsImlkZW50aWZpY2F0aW9uIjoiNDc4NTQxMjU0IiwiaWRlbnRpZmljYXRpb25UeXBlIjoiU1NOIiwiZmlyc3ROYW1lIjoiQmlzaG51IiwibWlkZGxlTmFtZSI6IlBhcmlraCIsImxhc3ROYW1lIjoiU2hhaCJ9LCJjcmVkaXRvckFjY291bnQiOnsiaWRlbnRpZmljYXRpb24iOiI4NTc0NDQ0NDAwMDIiLCJpZGVudGlmaWNhdGlvblR5cGUiOiJBQ0NPVU5UX05VTUJFUiIsImlkZW50aWZpY2F0aW9uVHlwZTIiOiJDSEVDS0lORyIsImluc3RpdHV0aW9uIjp7Im5hbWUiOiJKUCBNT1JHQU4gQ0hBU0UiLCJpZGVudGlmaWNhdGlvbiI6IjAxMTAwMjU1MCIsImlkZW50aWZpY2F0aW9uVHlwZSI6IkFCQSJ9fSwicHVycG9zZSI6IndhZ2VzIG9mIEp1bmUgbW9udGggaW5jbHVkZWQgd2l0aCBsb2FuIHJlcGF5bWVudCJ9",
"processId": "20250527751751IBVVEq237NxvZ4K",
"supportedChannel": "FEDNOW",
"transactionType": "CCT_OUT"
},
"jsonrpc": "2.0"
}

Error Codes

Error Codes
Error CodeError MessageRecommended Action
ACCOUNT_NOT_EXISTDebtor Account doesn't ExistPlease enter a valid Account Number
ACCOUNT_NOT_MATCH_WITH_CRJ_ACCOUNTCRJ account number does not match with parent account numberPlease review the Sub Account and Parent Account details
ACCOUNT_NOT_MATCHED_WITH_LEGALREPAccount not matched with legalrepLegalrep does not have access to this account. Please contact Support.
BAD_INPUTReference is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTCreditorAccount is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTCreditorAccount.Identification is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTCreditorAccount.Institution is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTCreditorAccount.InstitutionId is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTDebtorAccount is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTDebtorAccount.Identification is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTDebtorAccount.Institution is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTDebtorAccount.InstitutionId is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTTransactionAmount is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTAmount is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTCurrency is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTDebitorAccount is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTDebitorAccount.IdentificationType is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTDebitorAccount.IdentificationValue is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTFee Amount is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTFee Currency is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTTax Amount is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTTax Currency is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTFee subsidiary source account doesn't have sufficient balancePlease check the error message and fix the request payload
BAD_INPUTRequest is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTReferenceId is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTProcessId is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTAmount field should not be more than 12 digits for wire transfersPlease check the error message and fix the request payload
BAD_INPUTDebitor AccountNumber is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTProduct account is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTCreditor Account is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTCreditorAccount InstitutionId is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTCreditorAccount Party is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTCreditorAccount Party Name is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTrequestID is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTapplicationCode is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTticketName is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTcreatedBy is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTpayloadJSON is invalid or missingPlease check the error message and fix the request payload
BAD_INPUTstatus is invalid or missingPlease check the error message and fix the request payload
CANNOT_PROCESS_TRANSACTIONTransaction cannot be processedTransaction Type is not supported. Please contact Support with the Error message
DUPLICATE_REFERENCE_IDA request with ReferenceId already existsPlease use a unique reference/request ID
FED_NOW_PROFILE_SETTINGS_NOT_FOUNDFednow profile Settings not found for the AccountPlease reach out to Support and share this error message
IN_ACTIVE_ACCOUNTAccount is inactiveYour Account is "INACTIVE". Please Contact Support
IN_ACTIVE_CUSTOMERCustomer is not in active stateYour Customer Profile is "INACTIVE". Please contact Support
INSUFFICIENT_BALANCEInsufficient balance in accountPlease review account limits or balances
INTERNAL_ERRORContact administrator and try againTemporary error – Please try again later
INVALID_CURRENCYAccount and Instructed Currency mismatchedPlease fix the Currency Code and Try again
INVALID_POSTED_DATEInvalid Posted Date. Must be RFC3339 FormatPlease fix the Posted Date Format and Try again
NOT_FOUND_ACCOUNTAccount not foundPlease fix the payload with the Correct Account Number
NOT_FOUND_APPLICATIONApplication not foundPlease fix the payload with the Correct Application ID
NOT_FOUND_CUSTOMERCustomer not foundPlease fix the payload with the Correct Customer ID
NOT_FOUND_INSTITUTIONInstitution not found in NetworkPlease fix the payload with the Correct Institution ID
NOT_FOUND_PRODUCTProduct not foundPlease fix the payload with the relevant Product Name
NOT_FOUND_PROGRAM_CHANNELProgram channel setting not foundPlease fix the payload with the Correct Program Channel
NOT_FOUND_TRANSACTIONTransaction not foundPlease fix the payload with the Correct Transaction ID
PER_DAY_MONEY_IN_LIMIT_BREACHEDPer day money_in limit breachedPlease reach out to Support and share this error message
PER_DAY_MONEY_IN_LIMIT_BREACHED_FOR_RECEIVERPer day money_in limit breached for receiverPlease review account limits or balances
PER_DAY_MONEY_OUT_LIMIT_BREACHEDPer day money_out limit breachedPlease review account limits or balances
PER_DAY_TRANSACTION_LIMIT_BREACHEDPer day transaction limit breachedPlease review account limits or balances
PER_MONTH_MONEY_IN_LIMIT_BREACHEDPer month money_in limit breachedPlease review account limits or balances
PER_MONTH_MONEY_OUT_LIMIT_BREACHEDPer month money_out limit breachedPlease review account limits or balances
PER_MONTH_TRANSACTION_LIMIT_BREACHEDPer month transaction limit breachedPlease review account limits or balances
PER_TRANSACTION_LIMIT_BREACHEDPer transaction limit breachedPlease review account limits or balances
PER_YEAR_TRANSACTION_LIMIT_BREACHEDPer year transaction limit breachedPlease review account limits or balances
RTP_PROFILE_SETTINGS_NOT_FOUNDRTP Profile Settings not found for the AccountPlease reach out to Support and share this error message
SUPPORTED_CHANNEL_UNAVAILABLESupported channel unavailablePlease reach out to Support and share this error message
TCH_REF_BALANCE_EXCEEDED-Please reach out to Support and share this error message
TRANSACTION_NOT_SUPPORTEDTransaction not supportedPlease review the request
TXN_NOT_ALLOWED_FOR_NON_ADDRESSABLE_ACCNot allowed for non-addressable accountPlease verify if the requested action is allowed or supported
WIRESETTING_NOT_FOUNDWire Settings not found for the AccountPlease reach out to Support and share this error message